﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

// NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de interfaz "IService1" en el código y en el archivo de configuración a la vez.
[ServiceContract]
public interface IMercadoLibreService
{	
    [OperationContract]
    List<Articulo> ListarArticulos();

    [OperationContract]
    List<Articulo> BuscarArticulos(string texto);

    [OperationContract]
    Articulo ObtenerArticulo(int id);

}

[DataContract]
public class Articulo
{    
    int id;
    string nombre;
    double precio;
    int cantidad;
    string urlImagen;

    [DataMember]
    public int Id
    {
        get { return id; }
        set { id = value; }
    }

    [DataMember]
    public string Nombre
    {
        get { return nombre; }
        set { nombre = value; }
    }

    [DataMember]
    public double Precio
    {
        get { return precio; }
        set { precio = value; }
    }

    [DataMember]
    public int Cantidad
    {
        get { return cantidad; }
        set { cantidad = value; }
    }

    [DataMember]
    public string UrlImagen
    {
        get { return urlImagen; }
        set { urlImagen = value; }
    }
}

// Utilice un contrato de datos, como se ilustra en el ejemplo siguiente, para agregar tipos compuestos a las operaciones de servicio.
[DataContract]
public class CompositeType
{
	bool boolValue = true;
	string stringValue = "Hello ";

	[DataMember]
	public bool BoolValue
	{
		get { return boolValue; }
		set { boolValue = value; }
	}

	[DataMember]
	public string StringValue
	{
		get { return stringValue; }
		set { stringValue = value; }
	}
}
